/**
 *Copyright (c) 2024 watereyes
 * safetymanagement is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.scene.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.koron.common.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

@ApiModel(value = "项目实体类", description = "项目实体类")
public class Project extends BaseEntity {
    @ApiModelProperty(name = "name", value = "项目名称", dataType = "String")
    private String name;

    @ApiModelProperty(name = "corpCode", value = "单位code", dataType = "String")
    private String corpCode;

    @ApiModelProperty(name = "corpName", value = "单位名称", dataType = "String")
    private String corpName;

    @ApiModelProperty(name = "projectType", value = "项目类型", dataType = "String")
    private String projectType;

    @ApiModelProperty(name = "projectLeaderCode", value = "项目负责人code", dataType = "String")
    private String projectLeaderCode;

    @ApiModelProperty(name = "projectLeaderName", value = "项目负责人名称", dataType = "String")
    private String projectLeaderName;

    @ApiModelProperty(name = "establishDate", value = "立项日期", dataType = "date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date establishDate;

    @ApiModelProperty(name = "establishDateStr", value = "立项日期,用于导出", dataType = "date")
    private String establishDateStr;

    @ApiModelProperty(name = "state", value = "状态:0.在建,1.完工", dataType = "")
    private Integer state;

    @ApiModelProperty(name = "description", value = "项目简介", dataType = "String")
    private String description;

    @ApiModelProperty(name = "attachment", value = "项目材料", dataType = "String")
    private String attachment;

    private List<Enterprise> enterpriseList;

    private List<ProjectMaintainStaff> maintainStaffs;

    @ApiModelProperty(name = "previewAttachment", value = "预览附件url", required = false, dataType = "String")
    private String previewAttachment;

    public String getPreviewAttachment() {
        return previewAttachment;
    }

    public void setPreviewAttachment(String previewAttachment) {
        this.previewAttachment = previewAttachment;
    }


    public List<ProjectMaintainStaff> getMaintainStaffs() {
        return maintainStaffs;
    }

    public void setMaintainStaffs(List<ProjectMaintainStaff> maintainStaffs) {
        this.maintainStaffs = maintainStaffs;
    }

    public List<Enterprise> getEnterpriseList() {
        return enterpriseList;
    }

    public void setEnterpriseList(List<Enterprise> enterpriseList) {
        this.enterpriseList = enterpriseList;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCorpCode() {
        return corpCode;
    }

    public void setCorpCode(String corpCode) {
        this.corpCode = corpCode;
    }

    public String getCorpName() {
        return corpName;
    }

    public void setCorpName(String corpName) {
        this.corpName = corpName;
    }

    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    public String getProjectLeaderCode() {
        return projectLeaderCode;
    }

    public void setProjectLeaderCode(String projectLeaderCode) {
        this.projectLeaderCode = projectLeaderCode;
    }

    public String getProjectLeaderName() {
        return projectLeaderName;
    }

    public void setProjectLeaderName(String projectLeaderName) {
        this.projectLeaderName = projectLeaderName;
    }

    public Date getEstablishDate() {
        return establishDate;
    }

    public void setEstablishDate(Date establishDate) {
        this.establishDate = establishDate;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getAttachment() {
        return attachment;
    }

    public void setAttachment(String attachment) {
        this.attachment = attachment;
    }

    public String getEstablishDateStr() {
        return establishDateStr;
    }

    public void setEstablishDateStr(String establishDateStr) {
        this.establishDateStr = establishDateStr;
    }
}